package com.cn.wanxi.util;

public class ReadMe {
    /**
     * 2021-11-11
     * 第二阶段：将第一阶段的所有文字或者图片进行提取（按照面向对象的方式进行提取）；
     * 然后渲染到页面上
     * 技术知识点：
     * servlet  后台框架
     * jsp  前端模板
     * -------------------------------------------
     * Java基础：
     * 1.需要按照工具
     *      1）jdk  运行环境  需要配置环境变量
     *      2）idea  开发工具
     *      3）tomcat  运行容器
     *   JAVA编译过后运行的文件全是out里面的文件   .class java需要将所有文件全部编译成class文件才能进行操作
     *   Java分为三个体系：
     * JavaSE（J2SE）（Java2 Platform Standard Edition，java平台标准版）
     * JavaEE(J2EE)(Java 2 Platform,Enterprise Edition，java平台企业版)
     * JavaME(J2ME)(Java 2 Platform Micro Edition，java平台微型版)
     * java 语言的特性：
     *    1）简单性： 抛弃了c++的指针，垃圾回收去自动回收
     *    2)面向对象  请列举哪些开发语言是面向对象？哪些开发语言是面向过程？
     *    3）分布式
     *    4）健壮的
     *    5）安全的
     *    6）体系结构中立的
     *    7）可移植
     *    8）解释型的
     *    9）高性能的
     *    10）多线程的
     *    11）动态的
     *     面向对象和面向过程的区别？或者优缺点？
     *     --------------------------------------
     *     把大象关进冰箱有几步？
     *     1）面向过程
     *          openBridge();//打开冰箱
     *          walkElephant();//大象进冰箱
     *          closeBridge();//关闭冰箱
     *     2)面向对象  首先需要将这个事情 抽取对象
     *          1）Elephant对象
     *              walkElephant（）；
     *          2）Bridge对象
     *              openBridge（）；
     *              closeBridge（）；
     *          3）Person对象
     *                调用main方法去执行
     *-------------------------------------------------------
     * 新需求：把老虎关进冰箱？
     *   1）面向过程
     *      openBridge();//打开冰箱
     *     walkTiger();//老虎进冰箱
     *     closeBridge();//关闭冰箱
     *    2）面向过程
     *       只需要添加一个Tiger类 不需要修改任何代码
     *---------------------------------------------------------------------
     * 我们需要将生活中的例子转换为Java可以识别的代码
     *  一个生活中的对象 对于一个Java中的类
     *  例子：狗
     *  Java：Dog
     *  当我们写完一个描述Dog的类后，能不能具体描述一条狗呢？
     *  这个狗 叫做狗的类 狗类 如果需要具体描述某一条狗，则需要将这个类具体化
     *  1)需要对这个狗创建一个对象 或者对狗进行对象实例化
     *  对象是类的的实例
     *   public             static      void        main(   String[]        args) {
     *   权限修饰符      特性修饰符   返回值         方法名     参数类型 参数名称
     *   访问修饰符      非访问修饰符
     *     }
     * -----------------------------------------------------
     * idea里面如果idea工具对代码进行颜色的区分  有高亮颜色的都叫做关键字
     * 请列举10个关键字？
     * Java命名规范： 对标识符进行命名
     * 1）包名：package com.cn.wanxi.util; 包名全部小写  如果有多个单词，则用.号风格
     * 2) 类名：Dog   第一个字母大写  如果有多个单词，则每个单词的第一个字母大写  大驼峰式命名
     *          HelloWorld
     * 3）字段名/属性名  第一个字母小写，后面单词的每个单词第一个字母大写  小驼峰命名
     *          helloWorld
     * 4）方法名  同3
     * 5）常量：不能修改的变量  全部大写   HELLO_WORLD
     *          小写大写相互转换快捷键：ctrl+shift+u
     * 注意：所有名称全部用英文，不要有数字，特殊字符，汉字
     * java区分大小写
     *  只要是自己命名的都叫做标识符
     *  不是自己命名的都叫 关键字
     *  --------------------------------------------------------
     *  面试：Java的特征？三大特征 封装  继承  多态  （抽象）
     *  类是一个模板 可以通过对类的属性和方法进行操作
     *  变量：可以改变的量  所有 有数据类型+标识符（变量名） 都叫变量  String name
     *  局部变量： 在方法里面
     *  成员变量： 直接挨着类 在类下面叫成员变量
     *  类变量：在类下面叫成员变量，只不过 一般我们用static修饰的变量叫做类变量
     *          static String age;//类变量（静态变量）
     *  常量：不可修改的变量   通常用final修饰
     *       final String NATIONALITY="中国";
     * 构造方法的名称必须与类同名，一个类可以有多个构造方法
     * 构造方法的作用？得到当前对象
     * 一个类提供了一个默认的无参数的构造方法
     * 如果有构造方法有参数，则默认的无参构造方法失效
     * 面试：
     * 1.构造方法是否有返回值？ 有  ，返回值为对象本身
     * 2.方法名字和类名一样的叫做构造方法？ 不一定是
     * throws Exception 抛出异常
     *   void Dog() {
     *     } 不是构造方法
     *
     * import  引入其他包里面的类或者对象
     */
    /**
     * 2021-11-12
     * 变量：变量就是申请内存来存储值。也就是说，当创建变量的时候，需要在内存中申请空间。
     *  不要没事就去定义类变量  （全局变量)
     *  如果非要用变量，则可以定义局部变量
     *  变量类型不一样，那么占用的空间不一样,不要随便定义数据类型（数据类型适合当前变量就好）
     *  变量有什么数据类型？
     *  Java 的两大数据类型:
     *
     *      内置数据类型
     *      引用数据类型
     *  Java语言提供了八种基本类型。
     *  六种数字类型（四个整数型，两个浮点型），
     *  一种字符类型，
     *  还有一种布尔型。
     *  数据分为 数字(整数和小数（数据量的大小）)，字符，真假
     *  四个整数型分别为：
     *  数据类型        字节             范围
     *  byte             1             无符号位： 0-255 有符号位：-128~127   -2^7 ~  2^7-1
     *  short           2              -2^15 ~  2^15-1  -32768 ~32767
     *  int             4               -2^31 ~  2^31-1
     *  long            8               -2^63 ~  2^63-1
     *-----------------------------------------------------
     * 计算机语言是二进制语言 1和0
     * 所以我们需要将其他的数字或者字符转换为二进制
     *  一个字节有多少个二进制的单位？ bit 比特位
     *  1字节==8个bit位     1111 1111
     *  二进制和十进制之间相互转换？
     *  二进制最左边的一位是符号位 表示正负数  1 表示负数  0表示正数
     *  默认值 都是0；为了表示区分  如果是long数据类型一般 赋值的时候在数字后面加L；
     *  小数：浮点型
     *  单精度 float  4个字节
     *  双精度 double  8个字节
     *  对于浮点型 赋值时，float ff=1F;
     *  double dd=1D;
     *  ----------------------------
     *  整数默认为int类型  小数默认为double
     *  字符型   char 数据类型可以储存任何字符；
     *  char 2个字节
     *  a  ab 1  10   数  #
     *  只有单个独立存在的字符才表示字符
     *  默认值  ：''空字符
     *  --------------------------
     *  boolean  真假  只有两个值  true  false
     *  布尔占几个字节？1个bit位
     *  数字1占8个bit位？ 数字1占几个bit位？默认位int
     *  ----------------------------------------------
     *  除了基本类型都是引用类型
     *  只要是大驼峰命名的都是引用类型
     *  数据类型相互转换？
     * 低  ------------------------------------>  高
     *
     * byte,short,char—> int —> long—> float —> double
     * 类型转换 低转换位高的   低的对高的赋值  自动转换
     * 高的对低的赋值   会报错，需要进行强制转换  会丢失精度
     * 1.不能对boolean类型进行类型转换
     * 2.不能把对象类型转换成不相关类的对象
     * 3.在把容量大的类型转换为容量小的类型时必须使用强制类型转换
     * 4.转换过程中可能导致溢出或损失精度
     *-----------------------------------------------------------------------
     * 构造方法：
     * 主要目的就是为了得到对象，
     * 得到对象的目的就是为了调用对象的属性和方法
     * ---------------------------------------
     * 全局变量：在类里面，在方法外面
     * 局部变量：在方法里面
     * 类变量（静态变量）：用static修饰的变量
     * 实例变量：没有用static修饰的变量
     * ----------------------------------------------------
     * Java语言提供了很多修饰符，主要分为以下两类：
     *
     *      访问修饰符(权限修饰符)
     *      非访问修饰符（特征修饰符）
     *  java讲究的就是封装：封装的目的
     *  private  只能当前类可以调用
     *  protected 只能父类和子类进行调用
     *  public  所有类都可以调用
     *  默认不写  只能当前包可以调用
     *  -------------------------------------
     *  类不能由 private和protected修饰
     *  权限修饰符  就是为了控制别人是否能够访问当前的类或者类里面的属性和方法
     *  -------------------------------
     *  1.数据类型
     *  2.类型转换
     *  3.权限修饰符
     *  ------------------------------------
     *
     *
     *
     *
     *
     */

    /**
     * 2021-11-15
     * 第二阶段：将第一阶段的所有文字或者图片进行提取
     * （按照面向对象的方式进行提取）；
     * 1）找到页面上的所有对象，并根据对象设置对象的属性（字段）
     * 并将这些对象放入到Java后台
     * ---------------------------------------------------------
     * Java后台一般的格式：
     * 1）model
     * 需要命名：包名   com.cn.wanxi.model
     *      com 国际  cn  国内  wanxi  公司   model表示当前项目的功能 模块
     * Java的三层架构
     * 界面层（User Interface layer）、 页面控制层  servlet  和页面一一对应
     * 业务逻辑层（Business Logic Layer）、 service  和对象一一对应
     * 数据访问层（Data access layer） dao 和对象一一对应
     * ------------------------------------------------
     * 页面上的每一个对象设定一个model  命名时，需要在对象后面加一个包名
     * 封装对象时，默认所有的属性全部为私有的属性，如果需要别人调用，则提供给别人一个接口（方法）
     * 2）jsp层 （前端界面层） 用于渲染页面（将后台的数据渲染到前端页面）
     *  将所有html页面修改为jsp页面
     *  jsp的目的 ：就是替换JavaScript来进行渲染数据
     * 修改完后，需要安装tomcat，然后进行配置
     * 安装tomcat的时候需要注意：
     * 1，一般按照到c盘
     * 2，port  修改为大于0 即可
     * 3，安装完成后需要关系右下角里面启动的tomcat
     * 4，配置idea 的tomcat
     * 5，启动tomcat
     * -----------------------------------------------------
     * 3)数据来源于后台，那么怎么拿到后台的数据？
     * servlet 和页面一一对应
     *  HomeServlet和页面的主页面一一对应，
     *  因为我们需要用到Java的第一个框架  底层框架servlet  所以需要引入servlet的包
     *  赋值servlet.jar,粘贴到web-inf下面的lib包
     *  servlet 页面控制层 应该和页面相关，所以当前类里面不应该出现 其他不相干的代码
     *  所以，对于封装数据的代码，应该放在逻辑层
     *  -----------------------------------------
     *  4）service 服务逻辑层  主要用于封装对象
     *   注意：既然是封装对象，那么应该和model一一对应
     * 5）dao层  所有的数据应该放在dao层
     * ----------------------------------------------
     * 分层的目的是为了更加清晰：也为了后面其他程序员进行维护时提供一个规范
     * 一个对象对应一个model，对应一个service，对应一个dao层
     * 一个页面对应一个servlet层
     * 一个servlet可以对应无数个service
     * 顺序：jsp-->servlet--->service--->dao
     * 三层架构和MVC的区别？
     *
     *
     */
    /**
     * 2021-11-16
     * dao 装数据  数据实现层
     * service   写逻辑代码  服务逻辑层
     * servlet   页面控制层 和jsp页面进行对接
     * model  实体层   封装对象的
     * ---------------------------------------
     * 做新闻
     * 1.写后端
     * 0) model 创建新闻对象
     * 1)  servlet  转发数据
     *      NewsService newsService = new NewsService();
     *         NewsModel[] newsModels=newsService.getNewsModelsForHomePage();
     *         req.setAttribute("newsModels", newsModels);
     * 2)service 封装数据
     * 3) dao   填充数据，将页面的数据复制到dao层
     * 2.前端 jsp
     *   修改c:forEach内容
     *
     *
     */
}
